#include<bits/stdc++.h>
using namespace std;

int n,m;
int arr[100005];

bool f(int mid){
	int sum=0,cur=0;
	int i=0;
	while(sum<=m&&i<n){
		if(cur+arr[i]>mid){
			sum++;
			cur=0;
		}
		else{
			cur+=arr[i];
			i++;
		}
	}
	if(sum+1<=m) return true;
	else return false;
}

int main(){
	scanf("%d%d",&n,&m);
	int l=0;
	for(int i=0;i<n;i++){
		scanf("%d",&arr[i]);
		l=max(l,arr[i]);
	}
	int r=1e9+5,mid;
	while(l<r){
		mid=(r-l)/2+l;
		bool tag=f(mid);
		if(tag){
			r=mid;
		}
		else{
			l=mid+1;
		}
	}
	printf("%d",l);
	return 0;
}
